macroGen is package{
  # generate(?Xp) ==> pickup(Xp) ## {
    # foo ==> #$XX;
    # pickup(?X./bar) ==> pickup(X./foo);
    # pickup(?X) ==> { foo is 3; logMsg(info,"X=$(X)"); assert (any of U where U in X)=3 };
  };
  
  main() do {
    generate(list of {bar; bar; foo; foo});
  }
}
  